package com.aica.service;

import com.aica.entity.PunchInRecord;
import com.aica.vo.ResultVo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;

/**
 * <p>
 *  打卡相关服务类
 * </p>
 *
 * @author by
 * @since 2021-07-20
 */
public interface PunchInRecordService extends IService<PunchInRecord> {
    /**
     * 起床打卡
     *
     * 判断流程：
     *      判断今天是否已经打卡
     *          如果有当天记录，且已经打了起床卡，同时未打睡眠卡
     *          return ResultConstant.HAVE_GOT_UP
     *          其他情况
     *          插入新数据
     *          return insert==1? ResultConstant.OK:ResultConstant.SYSTEM_ERROR
     * @param usernamePasswordAuthenticationToken token
     * @return 状态码请查看ResultConstant
     */
    ResultVo<Object> rise(UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken);

    /**
     * 睡觉打卡
     * @param usernamePasswordAuthenticationToken token
     * @return 状态码请查看ResultConstant
     */
    ResultVo<Object> sleep(UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken);

    /**
     * 查看历史打卡记录
     * @param usernamePasswordAuthenticationToken token
     * @return 状态码请查看ResultConstant
     */
    ResultVo<Object> history(UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken);

}
